﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using LarDosIdosos.Business.Model;
using LarDosIdosos.NewAcessaDados;
using MySql.Data.MySqlClient;

namespace LarDosIdosos.Business
{
    public class DBTipoProduto
    {
        private string _stringConnection;

        public DBTipoProduto(string stringDeConexaoComBanco)
        {
            _stringConnection = stringDeConexaoComBanco;
        }


        public List<TipoProduto> SelectList(string sql)
        {
            AcessaDados conn = new AcessaDados(_stringConnection);
            try
            {
                conn.OpenConnection();
                var reader = conn.ExecuteDataReader(sql);
                if (reader.HasRows)
                {
                    return MontaListaDeTipoProduto(reader);
                }
                return new List<TipoProduto>();
            }
            catch (Exception ex)
            {
                throw new Exception("Não foi possível consultar o tipo documento", ex);
            }
            finally
            {
                conn.CloseConection();
            }
        }

        private List<TipoProduto> MontaListaDeTipoProduto(MySqlDataReader reader)
        {
            List<TipoProduto> listTipoProduto = new List<TipoProduto>();
            while (reader.Read())
            {
                listTipoProduto.Add(MontaTipoProduto(reader));
            }
            return listTipoProduto;
        }

        private TipoProduto MontaTipoProduto(MySqlDataReader reader)
        {
            return new TipoProduto { Codigo_Tipo_Produto = Convert.ToInt32(reader["Codigo_Tipo_Produto"]), Nome_Tipo_Produto = reader["Nome_Tipo_Produto"].ToString() };
        }

        public TipoProduto Select(int codigoTipoProduto)
        {
            AcessaDados conn = new AcessaDados(_stringConnection);
            try
            {
                conn.OpenConnection();
                var reader = conn.ExecuteDataReader("select * from tipo_produto where codigo_tipo_produto = " + codigoTipoProduto);
                if (reader.Read())
                {
                    return MontaTipoProduto(reader);
                }
                return null;
            }
            catch (Exception ex)
            {
                throw new Exception("Não foi possível consultar o tipo documento", ex);
            }
            finally
            {
                conn.CloseConection();
            }
        }
    }
}
